package cn.dsp.admin.mapper;

import cn.dsp.admin.entity.UserRole;
import cn.dsp.admin.entity.admin.Admin;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface AdminMapper {

    /**
     *插入管理员数据
     * @param admin 管理员数据
     * @return 受影响的行数
     */
    Integer save(Admin admin);

    /**
     * 更新密码
     * @param adminId 管理员id
     * @param password  密码
     * @param modifiedUser  修改用户
     * @param modifiedTime  修改实际
     * @return
     */
    Integer updatePassword(
            @Param("adminId") Integer adminId,
            @Param("password") String password,
            @Param("modifiedUser") String modifiedUser,
            @Param("modifiedTime") Date modifiedTime);

    /**
     * 修改管理员个人资料
     * @param admin 修改的用户
     * @return 受影响的行数
     */
    Integer updateInfo(Admin admin);

    /**修改管理员角色*/
    Integer deleteUserRole(Admin admin);

   /** 超级管理员修改管理员资料*/
    Integer updateInfoByAdmin(Admin admin);

     /**
     * 根据管理员id查找用户数据
     * @param adminId 管理员id
     * @return  匹配的管理员数据，如果没有匹配的数据，则返回null
     */
    Admin findByAdminId(Integer adminId);

    /**
     *根据管理员用户名查找用户数据
     * @param adminName 管理员用户名
     * @return  匹配的管理员数据，如果没有匹配的数据，则返回null
     */
    Admin findByAdminName(String adminName);


    /**
     * 显示所有角色信息
     * @return
     */
    List<Admin> findAllAdmin();

    /**
     *  根据角色名称查询符合的角色信息
     */
    List<Admin> findAdminByTerm(String term);

    /**
     * 删除用户信息数据
     */
    Integer remove(Integer adminId);

    /**移出所有绑定角色*/
    Integer removeAllRole(Integer adminId);

    /**查询某个绑定角色*/
    UserRole findUserRole(UserRole userRole);

    /**田间绑定角色*/
    Integer adminAddRole(UserRole userRole);



}